সার্ভিস ওয়ার্কার (Service Worker) কি?
সার্ভিস ওয়ার্কার হলো একটি স্ক্রিপ্ট যা ওয়েব পেজ থেকে আলাদা হয়ে ব্রাউজারের ব্যাকগ্রাউন্ডে চলতে থাকে এবং এর মাধ্যমে অফলাইন ফিচার, ব্যাকগ্রাউন্ড সিঙ্ক এবং পুশ নোটিফিকেশন সুবিধা পাওয়া যায়। সার্ভিস ওয়ার্কার মূলত ওয়েব অ্যাপ্লিকেশনগুলিকে অফলাইন মোডে কাজ করতে সক্ষম করে এবং এর মাধ্যমে ইন্টারনেট সংযোগ না থাকলেও কিছু ফিচার ব্যবহারকারীর কাছে অ্যাক্সেসযোগ্য থাকে। এটি ব্রাউজারের ক্যাশিং সিস্টেমকে ব্যবহার করে, যার মাধ্যমে ওয়েব অ্যাপ্লিকেশনটি দ্রুত লোড হয় এবং সার্ভারের সাথে কম রিকোয়েস্ট করতে হয়।
সার্ভিস ওয়ার্কার এর প্রধান সুবিধাসমূহ:
- অফলাইন সাপোর্ট: সার্ভিস ওয়ার্কার ব্যবহার করে আপনি ওয়েব অ্যাপ্লিকেশনকে অফলাইনে ব্যবহার উপযোগী করতে পারেন। এটি অ্যাপ্লিকেশনের ডেটা ক্যাশ করে রাখে, যাতে ইন্টারনেট না থাকলেও অ্যাপ্লিকেশন কাজ করতে পারে।
- ব্যাকগ্রাউন্ড সিঙ্ক: এটি ওয়েব অ্যাপ্লিকেশনকে ব্যাকগ্রাউন্ডে ডেটা সিঙ্ক্রোনাইজ করতে সক্ষম করে।
- পুশ নোটিফিকেশন: ওয়েব অ্যাপ্লিকেশনগুলিকে ব্রাউজার নোটিফিকেশন পাঠাতে সক্ষম করে, এমনকি যখন ব্যবহারকারী অ্যাপ্লিকেশনটি ওপেন না করে।
সার্ভিস ওয়ার্কার কীভাবে কাজ করে?
- রেজিস্টার করা: প্রথমে সার্ভিস ওয়ার্কার স্ক্রিপ্টটি ওয়েব পেজে রেজিস্টার করতে হয়।
- এভেন্ট লিসেনার: সার্ভিস ওয়ার্কার ইনস্টলেশন, অ্যাকটিভেশন এবং ফেচিং ইভেন্টগুলোর জন্য ইভেন্ট লিসেনার দিয়ে কাজ করে।
- ক্যাশিং: ওয়েব পেজের রিসোর্সগুলি (যেমন HTML, CSS, ইমেজ) ক্যাশ করে রাখে, যাতে পরবর্তীতে অফলাইনে বা ইন্টারনেট সংযোগ কম থাকলেও সেগুলি দ্রুত লোড হয়।
সার্ভিস ওয়ার্কার উদাহরণ:
// সার্ভিস ওয়ার্কার রেজিস্টার করা
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('/service-worker.js')
.then(function(registration) {
console.log('Service Worker রেজিস্টার হয়েছে:', registration);
})
.catch(function(error) {
console.log('Service Worker রেজিস্টার করতে সমস্যা:', error);
});
}
এখানে, /service-worker.js হলো সেই স্ক্রিপ্ট যেখানে সার্ভিস ওয়ার্কারটি নিবন্ধিত হবে।
ওয়েব অ্যাপ্লিকেশন ম্যানিফেস্ট (Web Application Manifest) কি?
ওয়েব অ্যাপ্লিকেশন ম্যানিফেস্ট হলো একটি JSON ফাইল যা ওয়েব অ্যাপ্লিকেশনটির মেটা ডেটা এবং কনফিগারেশন তথ্য ধারণ করে। এটি ব্রাউজারকে জানিয়ে দেয় যে, ওয়েব অ্যাপ্লিকেশনটি একটি প্রগ্রেসিভ ওয়েব অ্যাপ (PWA) হিসেবে কাজ করবে, এবং এটি ব্যবহারকারী ডিভাইসে হোম স্ক্রীনে অ্যাড করার সুবিধা সরবরাহ করে। ওয়েব অ্যাপ্লিকেশন ম্যানিফেস্টে সাধারণত অ্যাপ্লিকেশনের নাম, আইকন, থিম রঙ, স্টার্ট URL ইত্যাদি থাকে।
ওয়েব অ্যাপ্লিকেশন ম্যানিফেস্টের ফিচার:
- নাম এবং আইকন: অ্যাপ্লিকেশনের নাম এবং আইকন যা হোম স্ক্রীনে প্রদর্শিত হবে।
- থিম কালার: অ্যাপ্লিকেশনের জন্য একটি থিম কালার নির্ধারণ করা যায় যা ব্রাউজার টুলবারের রঙ এবং অ্যাপ্লিকেশনের অভ্যন্তরে ব্যবহৃত হবে।
- স্টার্ট URL: অ্যাপ্লিকেশনটি যে URL থেকে শুরু হবে।
- অফলাইন ব্যবহার: ওয়েব অ্যাপ্লিকেশনটি যদি অফলাইনে চলে যায়, তবে ম্যানিফেস্টে নির্ধারিত নির্দিষ্ট রিসোর্সগুলি ব্যবহার করা যাবে।
ওয়েব অ্যাপ্লিকেশন ম্যানিফেস্ট উদাহরণ:
{
"name": "My Web App",
"short_name": "WebApp",
"description": "A simple web app example",
"start_url": "/index.html",
"display": "standalone",
"background_color": "#ffffff",
"theme_color": "#000000",
"icons": [
{
"src": "/icons/icon-192x192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "/icons/icon-512x512.png",
"sizes": "512x512",
"type": "image/png"
}
]
}
এখানে:
- name: অ্যাপ্লিকেশনের পূর্ণ নাম।
- short_name: অ্যাপ্লিকেশনের সংক্ষিপ্ত নাম।
- description: অ্যাপ্লিকেশনের বর্ণনা।
- start_url: অ্যাপ্লিকেশন শুরু হবে এমন URL।
- display: "standalone" সেট করা হলে অ্যাপ্লিকেশনটি একটি স্বতন্ত্র অ্যাপ্লিকেশন হিসেবে কাজ করবে, এবং ব্রাউজারের ইউআরএল বারে দেখাবে না।
- icons: অ্যাপ্লিকেশনের আইকন সেট করা হয়, যা ডিভাইসের হোম স্ক্রীনে অ্যাপ্লিকেশনটি যুক্ত করা হলে দেখানো হবে।
ম্যানিফেস্ট যুক্ত করা:
<link rel="manifest" href="/manifest.json">
এটি HTML ফাইলে যুক্ত করা হয় যাতে ব্রাউজার ওয়েব অ্যাপ্লিকেশন ম্যানিফেস্টটি লোড করতে পারে।
সার্ভিস ওয়ার্কার এবং ওয়েব অ্যাপ্লিকেশন ম্যানিফেস্টের সংযোগ
সার্ভিস ওয়ার্কার এবং ওয়েব অ্যাপ্লিকেশন ম্যানিফেস্ট একসাথে একটি প্রগ্রেসিভ ওয়েব অ্যাপ (PWA) তৈরি করতে সহায়তা করে। যেখানে সার্ভিস ওয়ার্কার অফলাইন সাপোর্ট এবং ব্যাকগ্রাউন্ড সিঙ্কিং সরবরাহ করে, ওয়েব অ্যাপ্লিকেশন ম্যানিফেস্ট অ্যাপ্লিকেশনটি ডিভাইসে ইন্সটল করা এবং হোম স্ক্রীনে অ্যাড করার সুবিধা দেয়।
সারাংশ
- সার্ভিস ওয়ার্কার একটি ওয়েব প্রযুক্তি যা আপনার ওয়েব অ্যাপ্লিকেশনকে অফলাইন মোডে চালানোর ক্ষমতা এবং ব্যাকগ্রাউন্ড প্রক্রিয়া পরিচালনার সুবিধা দেয়।
- ওয়েব অ্যাপ্লিকেশন ম্যানিফেস্ট হল একটি JSON ফাইল যা ওয়েব অ্যাপ্লিকেশনটির মেটা ডেটা ধারণ করে এবং ব্যবহারকারীদের ডিভাইসে অ্যাপ্লিকেশনটি ইনস্টল এবং হোম স্ক্রীনে অ্যাড করার সুবিধা দেয়।
এই দুটি প্রযুক্তি একত্রিত হয়ে একটি প্রগ্রেসিভ ওয়েব অ্যাপ তৈরি করতে সহায়তা করে, যা ওয়েব অ্যাপ্লিকেশনকে আরও শক্তিশালী, ইন্টারঅ্যাকটিভ এবং ব্যবহারকারী-বান্ধব করে তোলে।